# 字符串 单个的字符串也可以看作是一个数据容器， 列表一样的操作
字符串 = 'sunxingang孙新罡'
# 从输出结果可以看出，对字符串的操作可以和列表一样
print(f'下标索引 0，输出单个的字符是： {字符串[0]}')
print(f'下标索引 -1，输出单个的字符是： {字符串[-1]}')
print()

# 字符串 和元组一样是不可以修改的
# 字符串[0] = 'w'  # 这种列表一样修改字符的操作不行，会报错。

# 可以用一些骚操作追加 字符串里的字符 ，知道就好 一般不建议怎么做
字符串 += "新w ww"
print(f'追加了字符：{字符串}')
print()

# 查找特定字符的下标号 正向搜索到第一个匹配项结束，所以多个相同字符，只显示第一个的 下标号
下标 = 字符串.index('新')
print(f'要查找的值的下标是：{下标} 号')

# 字符串替换， 注意这种是替换成新的字符串。  所以不是修改
字符串 = 'sunxingang孙新罡'
新字符串 = 字符串.replace('xin', '新')   # 字符串不能修改，所以这个是替换字符是, 替换字符 在建一个新的 字符串
print(f'替换了字符，新的字符串：{新字符串}')
print(f'原来的字符串还是：{字符串}')
print()

# 分割字符串
# 把一个字符串分割成多给字符串，在存到列表里
字符串 = '孙新罡 张亚 李小萌'
新列表 = 字符串.split(' ')   # 按照什么来分割，这里是按照 空格 来分割的。  注意 字符串不能修改，所以是按照条件分割，建立了一个列表存储
print(f'分割字符串建立的新列表是：{新列表}', f'类型是{type(新列表)}')
print()


# 删除字符串前后的 字符  特别注意这个函数只能删除 字符串前后的字符，中间的不行
# 1.去除字符串前后的 空格和回车换行符（不传参数）  2.或者 指定删除字符串前后的 字符（传了参数）
字符串 = '   孙新罡 张亚 李小萌   '
新字符串 = 字符串.strip("1")   # （不传参数） 删除字符串前后的 空格和回车换行符
print(f'{字符串},字符串被strip()函数处理后是：\n{新字符串}')

字符串 = '21   孙新罡 张亚 李小萌   12'
新字符串 = 字符串.strip('12')    # 删除不是按照 12 搜索删除的，是按照 1 和 2 二个字符搜索删除的  特别注意
print(f"{字符串},字符串被strip('12')函数处理后是：\n{新字符串}")

字符串 = 'ssssssunxingang孙新罡2'
新字符串 = 字符串.strip('s2')   # （传了参数） 指定删除字符串前后的 字符  注意 是单个字符搜索删除
print(f"{字符串},字符串被strip('s2')函数处理后是：\n{新字符串}")
print()


# 统计字符串里出现的 某个字符 的次数
字符串 = '212   孙新罡 张亚 李小萌   121'
次数 = 字符串.count('12')
print(f"字符串里'12'出现的次数：{次数}")
# 统计字符串的长度
长度 = len(字符串)
print(f"字符串的字符数：{长度}")
print()
# 字符串的操作和列表很像，但要注意 字符串不能修改，类似的修改但是另建一个 字符串或者列表 来保存的

# 字符串和元组 列表一样都是可以遍历的
# 2种循环输出当字符
字符串 = '孙新罡'
下标 = 0
while 下标 < len(字符串):
    print(字符串[下标])
    下标 += 1
print()

for x in 字符串:
    print(x)
print()
# 小练习
练习字符串 = '孙新罡 老板 职业 主题 主题'
次数 = 练习字符串.count('主题')
print(f"字符串里 主题 出现的次数:{次数}")
新字符串 = 练习字符串.replace(' ', '|')
print(f"替换 空格 的新字符串是: {新字符串}")
列表 = 新字符串.split("|")
print(f"用 | 做分割,新给列表是: {列表}")
